home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / grafix / misc / smartfractalv1_2.lha / SmartDistribution / SmartFractal / SmartFractal.doc < prev    next >
Encoding:
Text File  |  1990-06-20  |  39.7 KB  |  740 lines

  1.  
  2.                              Smart Fractal V1.2
  3.                                      by
  4.                               Avogadro Simone
  5.  
  6.                          V 1.2 release in 20/9/94
  7.  
  8.  
  9.  
  10.                                USER'S MANUAL
  11.  
  12.  
  13.  IMPORTANT:  THIS PRODUCT IS SHAREWARE, IF YOU USE AND LIKE IT PLEASE SEND
  14. $10 TO THE AUTHOR. IF YOU DO  NOT KNOW WHAT SHAREWARE IS, PLEASE READ  THE
  15. SHAREWARE.DOC  FILE FIRST, YOU FIND  IT IN THE SAME  ARCHIVE OF THIS FILE.
  16. ALSO  NOTE  'REQTOOLS'   IS  WORK  OF   NICO  FRANCOIS,  REGISTERING   FOR
  17. 'SMARTFRACTAL' YOU DON'T REGISTER FOR 'REQTOOLS'.
  18.  
  19.  
  20.                                    INDEX
  21.  
  22.                 Chapter 1: The philosophy of the program
  23.  
  24.        1.1     What's a fractal ?
  25.        1.2     Introduction to Smartfractal
  26.        1.3     What's different (and some background story)
  27.        1.4     Some known spots
  28.  
  29.  
  30.                      Chapter 2: The program's menu
  31.  
  32.        2.1     Project
  33.        2.1.1     Informations
  34.        2.1.2     Loading/saving files
  35.        2.1.3     Exiting the program
  36.  
  37.        2.2     Controls
  38.        2.2.1     Graphic controls
  39.        2.2.2     Methods tuning
  40.        2.2.3     Zoom control
  41.        2.2.4     Extra controls
  42.  
  43.        2.3     Math
  44.        2.3.1     Editing parameters
  45.        2.3.2     Selecting the fractal type
  46.        2.3.3     Determining the type of math
  47.        2.3.4     Regenerating the image
  48.  
  49.        2.4     Colors
  50.        2.4.1     File operations
  51.        2.4.2     Palette editor
  52.        2.4.3     Choosing the rendering methods !!
  53.        2.4.4     Cycling
  54.  
  55.                   Chapter 3: Other features
  56.  
  57.        3.1     Commands of the toolbar
  58.        3.2     Keyboard commands
  59.        3.3     Preferences and setup
  60.  
  61.                   Chapter 4: Miscellaneous informations
  62.  
  63.        4.1     How to contact the author
  64.        4.2     Improvements
  65.        4.3     Known bugs
  66.        4.4     History
  67.        4.5     People I wish to thank
  68.        4.6     Bibliography
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.                 Chapter 1: The philosophy of the program
  76.  
  77.  This chapter contains all the informations needed to use Smartfractal. It
  78. briefly  illustrates the main  features of the  program and gives the user
  79. tips  on  how  to  obtain  some  beautiful  images.  Also gives some basic
  80. informations on what the fractals are.
  81.  
  82.        1.1     What's a fractal ?
  83.  
  84.  A  fractal is ... Ehrm... It's a fractal! Just kidding, if you don't know
  85. what a fractal is you will still be able to use Smartfractal but maybe you
  86. will not understand the meaning of some of the options. I won't explain in
  87. depth what a fractal is as this  would require too much space and this  is
  88. not  the  purpose  of  this  documentation.  However there are some simple
  89. things about  fractals anyone  can understand  even without  reading whole
  90. (sometimes  boring) books of  math. First of  all the name: Fractals, what
  91. does this name mean? Basically this refers to the fact that measuring  the
  92. number  of dimensions of one of these 'things' with some modern math techs
  93. (measuring the Hausdorff's dimension)  would give a 'weird'  number (maybe
  94. an  irrational number  or a  fraction, so  'fractal'). This means that the
  95. thing you see on a 2-dimensional sheet of paper has a different  dimension
  96. (Eg.: log(4/3)). Fun, and so? Well, that's difficult to interpret but this
  97. usually  derives from the fact that these  objects are defined by means of
  98. infinite recursion and so you can cut 1/4 of the object and it will occupy
  99. 1/3 (!!!)  of the  space of  the original  (that's the  case of the Kock's
  100. curve that you can find on the books used in secondary schools). We talked
  101. about  recursion, together  with infinity  it is  one of  the 'secrets' of
  102. fractals, the beauty of  these object derives from  the fact that you  can
  103. theorically  zoom-in forever  and always  discover new  zones, all of them
  104. will  look  like  the  ones  you  saw  before  but will always be somewhat
  105. different.  The graphical representation  of fractals is  done iterating a
  106. mathematical formula and studying its behaviour for each single point.  As
  107. we cannot afford to examine an infinite number of values for each point on
  108. the screen we usually stop after a finite number of iterations, the higher
  109. the number of steps before stopping, the more precise the drawing will be.
  110. The  fractals you can explore with  Smartfractal are all point-based, this
  111. means that the color  of a single point  depends only on the  behaviour of
  112. that single point. For each point we study the convergence/divergence of a
  113. series defined by the type of fractal and by the point itself, we say that
  114. the  point is in  the set if  the series converges,  otherwise we say that
  115. it's out of the set. The deeper we go into the set and the harder will  be
  116. to  determine if a point generates a series that diverges or converges and
  117. so  the  higher  will  be  the  number  of  iterations needed to obtain an
  118. acceptable image of that zone.
  119.  
  120.        1.2     Introduction to Smartfractal
  121.  
  122.  The  very first time  you will run  Smartfractal (Smart from  now on) you
  123. will probably want  to setup the  preferences as the  default behaviour of
  124. Smart  is to use parameters acceptable on  the most basic machine (like my
  125. A500 :-),  just browse  the control  menu to  set the  desidered number of
  126. colors, the correct image size and the most suitable number of iterations,
  127. if  you don't know  what this means  then you'd better  read the whole 1st
  128. chapter before beginning for better results. Now go to the colors menu and
  129. set the internal and the external coloring methods (these are peculiar  to
  130. Smart!),  now choose the fractal type  you prefer and save the preferences
  131. in the 'S:' directory, call them 'SmartFractal.prefs'. Done? O.K. You just
  132. finished  the  basic  setup!  From  now  on  Smart  will  start  with your
  133. preferences. Maybe you now want to zoom in, if so just click in the center
  134. of  the zone you want to zoom, adjust the box size with the gadgets on the
  135. right side and click on the zoom gadget (or select the zoom option in  the
  136. control  menu), Smart will  start to calculate  that area. After a certain
  137. number of  zooms you  will probably  decide to  zoom out,  just select the
  138. unzoom  menu!  If  you  cannot  find  anything beautiful you may decide to
  139. render pre-determined zones, if so just read paragraph 4!
  140.  
  141.        1.3     What's different (and some background story)
  142.  
  143.  What you have been  doing up to now  was possible even in  the most basic
  144. fractal  generator, so what  does Smart do  that others don't?  I chose to
  145. write Smart after re-reading a  book talking about fractals, the  pictures
  146. on that book looked somewhat nicer than the ones I could generate with the
  147. available  programs. The main difference was that these pictures were also
  148. colored  internally,  this  gave  them  a  totally  different  look. I was
  149. disappointed not to have a program to do that, unfortunately the tech used
  150. to  color that  pictures was  really time  consuming and would have slowed
  151. down  the  generation  of  images  to  an  unacceptable rate even on 68040
  152. machines,  so I gave off for some  time. Sometime later I happened to look
  153. again at that book and noticed that  some figures used a tech to draw  the
  154. external  part that was  quite simple to  implement but still  I could not
  155. find any program able to do that, what a shame, I thought, but then I  had
  156. an  idea: Why not to  create my own rendering  tech for the internal zones
  157. and use  the one  seen in  the book  for the  external ones  ? I  began to
  158. program  and in less than  a week I discovered  that my techs worked quite
  159. good, I just had to  write everything except from the  rendering routines,
  160. but  I were so  happy that the  things went on  by themselves. Some months
  161. after (I  had some  exams to  do so  I left  the project  for some time) I
  162. stumbled  into a disk with the word "Smartfractal" written on it, I picked
  163. it up, created the  user interface, added many  features and after a  hard
  164. work  I came up with  the very first beta  version. Some month have passed
  165. from that day and with the new versions I have added anything I could find
  166. useful to the program.  The program you are  using now is the  result of a
  167. hard  work and  so I  would appreciate  any form  of encouragement as I am
  168. human too  :-). Just  write a  postcard if  you really  do not think to be
  169. worth supporting me ;-( that postcard will let me know that there's people
  170. out there that appreciates my work !
  171.  
  172.  
  173.        1.4     Some known spots
  174.  
  175.  If  you ever happened  to read a  book about fractals  surely you'll have
  176. desired to render the same  pictures, apart from the problem  mentioned in
  177. the  previous paragraph,  sometimes the  informations on  how to  get that
  178. pictures are omitted! So I  decided to include a directory  containing the
  179. preference  files needed  to render  some very  known images and some less
  180. known ones that  I think to  be worth a  look! If you  want to render such
  181. zones  just  select  'Prefs->Load  spot'  and  than  look into the 'Spots'
  182. directory in the same directory of Smart. You'll notice that the spots are
  183. divided according to the type of  fractal. If you want to render  an image
  184. never  seen on books just enter the 'Volterra' dir and load the 'Seahorse'
  185. spot! Other unknown spots are found  in the dirs of the inverted  sets (by
  186. now  Julia, Mandelbrot and Julia parameter  plane), you can also find some
  187. beautyful spots in the 'Weird' directory, these are funny images  obtained
  188. by setting 'not too meaningful' parameters, most of them can be considered
  189. interference  images, because  of this  most of  the spots  in the 'Weird'
  190. drawer should be loaded as preferences.
  191.  
  192.  
  193.                      Chapter 2: The program's menu
  194.  
  195.  This chapter explains the meaning and the use of the various voices found
  196. in the menus.
  197.  
  198.        2.1     Project
  199.  
  200.  This menu contains all the controls concerning general operations.
  201.  
  202.        2.1.1     Informations
  203.  
  204.  There are two voices giving informations  in this menu. The first one  is
  205. "info",  it gives  informations on  the type  of fractal that is currently
  206. set, the window being drawn, the number of colors, iterations and the type
  207. of math that had been used to render the current image (useful in case you
  208. are using  the "auto"  mode), it  also states  if the  selected fractal is
  209. parametric  and if it's  parametric it shows  the value of the parameters.
  210. The second voice  giving informations is  "about", this shows  the program
  211. name, version and revision, a shareware message and my contact address.
  212.  
  213.        2.1.2     Loading/saving files
  214.  
  215.  With  the  "project"  menu  you  can  either  save  the current situation
  216. (comprehending  all  of  the  preferences)  together  with the image being
  217. displayed,  or save  only the  current settings  (comprehending the window
  218. position, fractal type, math, colors etc.). If you want to save everything
  219. (ie.: Image+settings) choose the "save" option directly in the main  menu,
  220. the  situation will be saved as a standard iff image followed by a special
  221. field added by Smart to be able to recall the infos about that image. Once
  222. you want to recall that situation just select "load" in the main menu  and
  223. the  situation  will  be  restored.  If  you  want  to  save/load just the
  224. situation  but  not  the  image  choose  the voice "prefs" and than select
  225. "load"  or "save". Note  that you CANNOT  recall only the situation (saved
  226. with the "prefs"  voice) using the  "load" in the  main menu, this  is the
  227. case  of the spots present  in this package, you  must use the "load spot"
  228. option from the "prefs" voice. Before saving the whole image you can go to
  229. the options an turn iff compression on/off, note that if you are saving to
  230. an autocompressing device  you'd better leave  it off as  the standard iff
  231. compression  method is run-length 1, that's quite inefficient. Please note
  232. that if you load an image saved with Smart in an art package and than save
  233. it back the package will NOT  retain the information about the fractal  so
  234. you won't be able to reload it with Smart, so when you do retouch an image
  235. do  not save it over the original or  you'll not be able to reload it with
  236. Smart!
  237.  
  238.        2.1.3     Exiting the program
  239.  
  240.  This  is  the  simplest  thing,  just  select  "Quit"  and you will see a
  241. requester  come up to ask you if you  really want to exit, just select yes
  242. and you  will terminate  Smart. Please  read the  known bugs section about
  243. problems  with  this  voice  in  case  you  use  a  promotor for a graphic
  244. enancher.
  245.  
  246.        2.2     Controls
  247.  
  248.  This menu contains  all the controls  concerning the aspect  of the image
  249. and giving controls about the zoom method and options.
  250.  
  251.        2.2.1     Graphic controls
  252.  
  253.  There  are four  voices controlling  the appearance  of the  image on the
  254. screen. The first one is "Size", this  enables you to set the size of  the
  255. image  to render, there are  4 predefined sizes and  a "custom" option. If
  256. you chose the  "custom" option you'll  get a requester,  if you are  using
  257. Kickstart  V2.0+ you'll get  a ScreenMode requester  and you'll be able to
  258. select any available resolution (comprehending any non-standard resolution
  259. available via third-party Monitor Types) and number of colors, please note
  260. that  you's  better  NOT  select  special  modes or non-proportional modes
  261. unless  you  want  to  make  some  weird tests (non-proportional modes are
  262. 1280x512  and  640x256),  so  if  you  wand  to  create a backdrop for the
  263. Workbench  you should  select Laced-Hi  Res and  than convert the image to
  264. non-laced hi res with a graphic package (Dpaint will do). If you are using
  265. KS1.3 or less you'll  get a string requester  and you'll be able  to enter
  266. the  desidered vertical size, the horizontal one will be determined by the
  267. "aspect" option, if you choose a vertical size lesser then or equal to 256
  268. the screen size will  be 320x256 and your  selection will affect only  the
  269. size of the image. If you choose a number greater than 256 you'll also set
  270. the  size of the screen,  remember that the screen  will always have a 5/4
  271. aspect (that's the default on PAL machines), if you choose a vertical size
  272. greater or equal to 400 you'll get a hi-res interlaced screen. The  second
  273. voice influencing the image is "aspect", you can select either "square" or
  274. "rectangular"  to set the aspect to 4:4  or to 5:4 (like the screen). Than
  275. there is the "colors" option, you can there choose the number of colors on
  276. the screen, please note  that Smart will try  to open the screen  with the
  277. desidered  number of colors even if your machine has not the capability to
  278. display them, this will blank the  screen if you select 64 colors  (that's
  279. extra  half bright) or  more and hi-res  on a non  AGA machine with KS1.3,
  280. this causes you  not to be  able to see  anything on the  screen, the only
  281. solution  is to terminate  the drawing pressing  Amiga-X and after a while
  282. pressing  return,  then  press  Amiga-Q  and  finally  'Y'  to quit Smart.
  283. Surprisingly  selecting 256 colors on KS1.3 in low-res will result in just
  284. 32 being displayed but 8 being stored in memory, so you can draw and  than
  285. store  256 color images that you'll be  able to display on AGA machines or
  286. with video  enanchers. Please  note that  some resolutions  will slow down
  287. significantly  the drawing on non-AGA machine,  that's not a bug, it's due
  288. to the internal multiprocessing architecture of the amiga that assigns too
  289. few time to the 680x0 (ie.: that's  the case of 16 color hi-res where  the
  290. machine almost stops). Then there is the "title" toggle, with this one you
  291. can  turn on/off the screen  title (if you turned  it off, selected a full
  292. screen image and turned on autozoom  then use Amiga-N and Amiga-M to  move
  293. the screen to front/back without zooming).
  294.  
  295.        2.2.2     Methods tuning
  296.  
  297.  In this menu you can set two options to control the methods to render the
  298. image,  both  of  them  will  give  you  control  on  the  accuracy of the
  299. representation. The first one is  "Depth", with this voice you  can select
  300. how  many  iterations  to  take  before  deciding that a point generates a
  301. series  that  converges.  Keep  this  number  high to have a more accurate
  302. representation of the image, keep it low to have a fast one, note that the
  303. deeper you go into the image the higher will have to be this number to get
  304. a realistic representation. The second voice is "Blocks", it allows you to
  305. set  how big the blocks will be and so how many passes will the image take
  306. to complete.  This gives  you control  on the  degree of  approximation in
  307. drawing the image, the bigger the blocks, the faster will be the rendering
  308. and the more you are like to lose some details. This option should be used
  309. with  care as it  has a big  potential, there are  zones where setting the
  310. blocks to 8x8 will not affect the  quality of the image but will speed  up
  311. its  generation more than  10 times, in  other zones even  setting the 2x2
  312. option will give  you a quite  inaccurate representation of  the image and
  313. will not be significantly faster than the pixel-perfect 1x1 mode. There is
  314. no  way to  tell what  the best  block size  is, generally  4x4 should not
  315. affect  significantly  the  image  integrity  but  will give a great speed
  316. improvement.  If you use the 8x8 option  be careful to set a higher number
  317. of iterations to compensate the possible imprecisions.
  318.  
  319.        2.2.3     Zoom control
  320.  
  321.  There are four voices concerning zooming  in this menu. The first one  is
  322. "zoomrate",  it allows you to set how much you will zoom, that is how much
  323. of the zone around the point  you selected will be zoomed. The  second one
  324. is  "autozoom", just select "on" or "off". If you turn it on each time you
  325. want to zoom you'll just have to click in the center of the zone you  wish
  326. to  zoom and the  zoom will take  automatically place even  if you did not
  327. select  the  voice  "zoom".  The  voice  "zoom"  is used when the autozoom
  328. feature is off to zoom in a zone, just select this voice and than click in
  329. the  center of the  zone you want  to see, if  you want to cancel the zoom
  330. just click outside of the image or press the right mouse button. The  last
  331. option  "unzoom" lets you zoom  off the current image,  just select it and
  332. the image will be recalculated automatically without further actions.
  333.  
  334.        2.2.4     Extra controls
  335.  
  336.  There are four more toggles providing generic controls on the setup. This
  337. toggles are "Autoredraw", "Pack iff", "Be quiet" and "Toolbar", the  first
  338. one  let's you  disable the  auto-update function  that redraws  the image
  339. after any change in the settings, when this is off the redraw will  happen
  340. only  if the screen had been rebuilt and the image disappeared. The second
  341. toggle is to turn on/off the  iff compression (see above for more  infos).
  342. When  the "Be quiet" switch is on you won't be prompted before overwriting
  343. existing files and you won't be presented a requester once the drawing had
  344. terminated (this will also turn off the screen-to-front feature). The last
  345. toggle  is  "Toolbox"  and  when  activated  (by default) will turn on the
  346. toolbar.
  347.  
  348.        2.3     Math
  349.  
  350.  This  menu  contains  all  the  voices  that  involve  direct  control of
  351. mathematical aspects of the drawing.
  352.  
  353.        2.3.1     Editing parameters
  354.  
  355.  As Smart  features parametric  fractals (Julia,  Volterra-Lotka and Julia
  356. Parameter  plane)  it  also  enables  you  to  specify  the value of these
  357. parameters. Julia, JuliaPP and Volterra do use 2 parameters, in the  Julia
  358. sets  the  parameter  is  a  complex  number  and indicates a point of the
  359. corresponding Mandelbrot set,  if while examining  the Mandelbrot set  you
  360. wish  to pick  a point  and set  the Julia  parameters to  that point just
  361. select the "set point" voice and click in the Mandelbrot set on the  point
  362. you  wish to use  (Tip: just after  setting the point  switch to the Julia
  363. set, you'll get a view of the  same window as it appears in the  Julia set
  364. and  it will  look similar  to the  region you  picked the point from, the
  365. nearer to  the point  you'll go  the lesser  the differences  will be :-).
  366. However  you may  know some  values (maybe  you have  a book)  and want to
  367. introduce them  manually, if  so just  choose the  "edit point" option and
  368. you'll  get a requester asking for the real part of the parameter and then
  369. for the imaginary one. If you changed your mind and no longer want to edit
  370. the parameters just hit return  twice. Maybe you got also  the coordinates
  371. of  the window you have to zoom, if so just choose the "edit window" voice
  372. and enter the value you wish to  use (once again press return to keep  the
  373. actual  values).  Note  that  the  window  requester will not allow you to
  374. specify all  the four  values as  you may  have expected,  this is because
  375. Smart  does not want you to get weird  image aspect (after all who wants a
  376. Mandelbrot set that looks deformed ??).
  377.  
  378.        2.3.2     Selecting the fractal type
  379.  
  380.  This is  easily done  by selecting  the "set  fractal" voice  and then by
  381. choosing  the fractal you  prefer. Mandelbrot and  Julia are the classical
  382. ones  found  in  almost  any  fractal generator, Volterra-Lotka is fractal
  383. taken  from  the  book  I  have  (see bibliography for more informations),
  384. Inverted Mandelbrot and Inverted Julia  are the Mandelbrot and Julia  sets
  385. projected into an inverted space (again see bibliography).
  386.  
  387.        2.3.3     Determining the type of math
  388.  
  389.  While  exploring fractals one of the most important problems is to choose
  390. a precision that enables to draw an image that is free of defects, but  at
  391. the  same time it's important not to  exaggerate not to slow down too much
  392. the calculation (I won't tell how long does a double precision image  take
  393. to  render in  640x512 on  an A500  but know  that I  care too much for my
  394. computer  to  risk  leaving  it  on  the  whole  night).  So you'll surely
  395. comprehend  that the more precisions are  available the better it is. Some
  396. programs (ehrm...  Actually I  know only  of Mand2000  that's a commercial
  397. program!)  do offer  special routines  to handle  almost any precision but
  398. you'll usually find that even on  fast machines (68040 33Mhz I mean!)  any
  399. precision  higher than  the extended  FPU precision  will result quite too
  400. slow to  use in  non-background situations.  Smart offers  you 6 different
  401. precisions,  they are  (in order  from the  fastest to  the most precise):
  402. Turbo integer, integer, big integer, floating point, double precision  and
  403. extended  FPU precision.  The first  five are  available to  anyone on any
  404. machine, the sixth one  is only available to  FPU owners and 68040  owners
  405. with  fpu-patches (see below).  Smart offers you  to do the selection work
  406. for you,  just choose  the "auto"  option and  you'll never  have to worry
  407. about  the type of math  used (Tip: when drawing  the starting image of an
  408. inverted  Julia  force  the  precision  to  integer, the zones near to the
  409. borders  will be pixelized but the effect may  be fine (I like it!) and it
  410. will also be faster (unless you have an FPU!), Smart had been designed  to
  411. be  as precise as reasonable so I did not set that tip into the program as
  412. default). Please note that if you are  drawing a zone on the border of  an
  413. inverted  Julia that is quite big (the  set not the region!) Smart may get
  414. confused and select the wrong precision, you'll notice it as you'll get  a
  415. pixelization  effect! In these cases you can  use the other options of the
  416. "precision" voice to  force Smart to  use a specific  precision, note that
  417. you  cannot force the Turbo integer precision  as it's useful only on some
  418. occasions and Smart will activate it automatically while using the  'auto'
  419. mode,  also note that  if you don't  have an FPU  and try to force the FPU
  420. routines Smart will complain, if you decide to go ahead anyway expect your
  421. machine to crash as I wrote  the FPU routines in assembler using  directly
  422. the  coprocessor istructions and  not the library  calls that are too slow
  423. (but useful  if you  need to  write a  single source  that uses either the
  424. emulation  routines either the FPU,  in this case I  wrote a separate code
  425. for  processor-based  calculation  and   so  there's  no  reason   to  use
  426. libraries).  Tech note  on how  Smart decides  the precision to use: While
  427. developing Smart I assumed that anyone owning an FPU also owns a processor
  428. that will  compute faster  in integer  (and turbo  integer!) than  the FPU
  429. (that's true if you have a 68020 or more, if you have a FPU and a 68010 or
  430. less  always force the precision to FPU, by the way: why did you do such a
  431. strange thing as connecting a 32 bit FPU to a 16 bit bus ?). Note to 68040
  432. owners: Before  using Smart  you must  run a  system patcher  to trap  the
  433. line-f  exceptions generated by the FPU istructions not supported by 68040
  434. internal FPU, once done this (you probably yet installed it in the startup
  435. :-) you can safely run Smart  and enjoy your machine's FPU speed!,  if you
  436. don't install the patch you'll still be able to use Smart but you won't be
  437. able to use FPU mode.
  438.  
  439.        2.3.4     Regenerating the image
  440.  
  441.  There  are two options to regenerate the image, the first one is "redraw"
  442. and will redraw exactly the selected window with the selected  parameters,
  443. this  is  useful  when  after  changing  the  coloring methods you want to
  444. regenerate the image with the new routines. The second option is "restart"
  445. and as  you'll have  guessed selects  the default  starting window for the
  446. selected type of set before redrawing.
  447.  
  448.        2.4     Colors
  449.  
  450.  As  beauty is a subjective idea people  may wish to change the appearance
  451. of the fractals on the screen, this menu does this but it also allows  you
  452. to select the coloring methods of internal and of the external part of the
  453. various  sets.  Note  that  this  is  not  just  an exterior change as the
  454. different  methods  give  different  informations  on the behaviour of the
  455. single points.
  456.  
  457.        2.4.1     File operations
  458.  
  459.  The  two voices "save"  and "load" allow  you to save  and load the whole
  460. color palette used by the program  (all 256 colors) in iff format  so that
  461. you'll  be able to use palettes  edited in your favourite drawing package.
  462. If  you  use  24  bit  palette  (AGA  machines) please read the known bugs
  463. section (that's not properly a bug but I placed the note there as I had no
  464. idea of where to put it).
  465.  
  466.        2.4.2     Palette editor
  467.  
  468.  Just  choose "edit" from the  menu and you'll be  faced with the standard
  469. color requester of the ReqTools library, freely edit the palette and  than
  470. choose 'ok' or 'cancel' to confirm the changes or to discard them.
  471.  
  472.        2.4.3     Choosing the rendering methods !!
  473.  
  474.  As I wrote before, this is the main difference with all the other fractal
  475. generators  I could find on Amiga, Smart can assign a color also to points
  476. internal to the set  !. There are two  menus concerning this options,  the
  477. first  one is "external" that  allows you to specify  the type of coloring
  478. you want  in the  external regions.  Here you  have six  choices: "Solid",
  479. "Smooth",  "Binary", "2Binary",  "Checked1" and  "Checked2". The first one
  480. will assign to all  the points not in  the set the same  color. The second
  481. one will assign the usual coloring that's based on the speed of divergence
  482. (this evidences the level curves). The third one is the one I talked about
  483. in chapter one, this is a simple method that assigns to each point outside
  484. the  set a color depending on where the point was when it exited the limit
  485. circle of  divergence, the  color depends  on the  argument of the complex
  486. number,  this brings in evidence the  Hubbard's angles of various point of
  487. the Mandelbrot and Julia sets.  The fourth method is a  personal variation
  488. of  the  third  that's  based  on  a  different  assignment  of the colors
  489. depending an the argument. The fifth and sixth are obtained by mixing  the
  490. "Smooth"  and  "Binary"  options,  they  are  very  impressive  if cycled,
  491. otherwise  they  look  almost  like  "Smooth". The second voice concerning
  492. coloring (and the most important in my opinion :-) is "internal" that lets
  493. you  specify  five  types  of  coloring, they are: "Solid", "Logarithmic",
  494. "Smooth type 1", "Smooth type 2"  and "Logarithmic type 2". The first  one
  495. works as the corresponding one in the external menu, the second, third and
  496. fourth  one give you an idea of how much difference there is in the module
  497. of point end of its (probable) attractor, the fifth one gives you an  idea
  498. of how far the point is from its attractor. The second and the fifth adopt
  499. a  logarithmic  scale  so  to  allow  you  to  see with the same precision
  500. attractors of different orders, the third and fourth do adopt a  corrected
  501. proportional  method, that's less efficient than the logarithmic scale but
  502. it's more colorful and in some cases gives you more informations. The most
  503. significant method in terms of math is the fifth one that does its  better
  504. to  evidence the internal level curves (that's  how fast a point gets near
  505. to its attractor), this is the most similar to the one I found on the book
  506. I wrote about in the previous chapter,  I cannot be sure if it's the  same
  507. but  I believe it to be, the real  problem is the nature of the attractors
  508. that  present  a  periodical  nature,  to  evidence  the biggest number of
  509. attractors  the number of iterations should  be equal to ((K!)-1) that's a
  510. number too high even with K=10 (K=10 -> depth should be = 3628799, too big
  511. for me!). This is a common problem with all the internal coloring methods,
  512. if you use it just select at  least an odd number (that's due to  the fact
  513. that  on some fractals, like Mandelbrot,  the main attractor (that's 0+i0,
  514. the origin of  Gauss' plane) is  present in all  the periodical orbits  so
  515. that  if you choose an even  number all the point will  look to be part of
  516. the domain of the origin!.
  517.  
  518.        2.4.4     Cycling
  519.  
  520.  From V1.1 Smart offers the cycling option, you can use the voices of  the
  521. "Cycle"  item to  turn on/off  cycling, select  the direction  of cycleing
  522. (forward or  backward) and  to speed  up or  slow down  the cycling of the
  523. colors.  You can change the direction of cycling while it's on without any
  524. problem. If you stop  the cycling the colors  will remain the ones  of the
  525. moment  you stopped  it, if  you want  to revert  to the  original palette
  526. select the "Reset" option, if you want to let the actual palette be  fixed
  527. just select "Edit" and click on "Ok" without modifying anything.
  528.  
  529.  
  530.                   Chapter 3: Other features
  531.  
  532.        3.1     Commands of the toolbar
  533.  
  534.  From  V1.2 on Smart features a toolbar that holds buttons for some of the
  535. most used  commands, it  also offers  a couple  of functions NOT available
  536. from  the menu. The top two gadgets are used to increase/decrease the size
  537. of the zoombox (and so to control the zoomrate), the two just below  allow
  538. to  zoom/unzoom and  the first  of the  next line  let's the user hide the
  539. zoombox (not available from menu). The one immediately on the right  let's
  540. the  user turn  on/off the  coordinate disply  option, when this option is
  541. active  if  the  cursor  passes  on  the  image  the  coordinates  of  the
  542. underlaying point will be displayed, this is really useful while using the
  543. "Set  point" option. The four  buttons below these ones  allow the user to
  544. turn on/off the color cycling, change its direction, speed up or slow down
  545. it. There are  than two icons  to show the  information box and  the about
  546. message. The last two buttons will let the user save/load everything.
  547.  
  548.        3.2     Keyboard commands
  549.  
  550.  Many  menu options do  have a keyboard  shortcut, and can  so be used via
  551. keyboard, however there is a simply trick available only from keyboard, if
  552. autozoom is off and the zoombox is  visible you can use the arrow keys  to
  553. move it around the image.
  554.  
  555.  
  556.        3.3     Preferences and setup
  557.  
  558.  If  you want Smart  to start with  your configuration as  default you may
  559. save your  preferences as  "SmartFractal.prefs" either  the "S:" directory
  560. either  in the same directory of Smart,  note: if you run Smart from SHELL
  561. you'll have to save the  preferences in the 'current' directory,  I.E.: if
  562. you  are  in  directory  "HD1:Utils/"  and  Smart  is  in  directory "HD2:
  563. Utils/Math/SmartFractal" (and it is the path) you can run Smart by  typing
  564. "SmartFractal",  but  if  your  preferences  are not in "HD1:Utils/" Smart
  565. won't use them.  So if you  frequently use Smart  from SHELL you'd  better
  566. place  the preferences in  the "S:" directory.  An other feature that will
  567. surely be appreciated by  someone is that you  can use any image  obtained
  568. with  Smart as default one, just save it as "SmartFractal.iff" in the same
  569. directory of Smart (the notes for SHELL  users about preferences are still
  570. valid).
  571.  Another feature that SHELL users will appreciate is that from V1.1  Smart
  572. will  auto-detach  from  the  current  process,  running in background and
  573. letting  you  close  the  Shell  whenever  you want without having to quit
  574. Smart.
  575.  
  576.  
  577.                   Chapter 4: Miscellaneous informations
  578.  
  579.        4.1     How to contact the author
  580.  
  581.  Well, if you have been reading the document you'll probably have also the
  582. program and my contact address but anyway here it is:
  583.  
  584.  Mail to:      Simone Avogadro
  585.                viale Rimembranze, 33
  586.                Appiano Gentile
  587.                  22070 (CO)
  588.                   ITALY
  589.  
  590.  E-mail on Internet to: simonea@varano.ing.unico.it
  591.  
  592.  If  you cannot access the internet but have access to the Fidonet you can
  593. use a  gateway to  Internet, if  you don't  know how  to do  that ask your
  594. sysop,  as I don't have direct access to  Fidonet I cannot tell you how to
  595. do it (sorry:-),  but note that  this method is  slow (usually it  takes a
  596. month or more for the mail to arrive to me!).
  597.  There  are no known bugs in Smart but  I can't tell if there are not bugs
  598. or if  we simply  don't now  about them  :-}, if  you find  any bug please
  599. report  it to me, possibly with a  clear description of how to recreate it
  600. (please state the  machine configuration you  have, etc.). Reporting  bugs
  601. helps me to keep the program safe so, expecially if you found a nasty one,
  602. report it to me as soon as possible.
  603.  
  604.        4.2     Improvements
  605.  
  606.  Here  I give a  list of improvements  that I'd like  to add to Smart if I
  607. have time (Ie: If I successfully take my exams) and if I feel Smart to  be
  608. appreciated (feedback is important, even an E-mail makes the difference!):
  609.  
  610.  
  611.  o Support for xpklibrary de/compression
  612.  o A "Pickup" menu so that you can stop drawing, save the partial work
  613.    and than pickup your work later (very useful for time-consuming
  614.    drawings!)
  615.  o A speedup buffer, so you can zoom faster
  616.  o Faster rendering routines
  617.  o Better color cycling feature
  618.  o 3D mapping of fractals (spherical and axonometrical)
  619.  o More types of fractals
  620.  o More coloring techs
  621.  
  622.  Changes that will take a bit more to be done:
  623.  
  624.  o Arexx support (I got the documentation for it and I will do it as
  625.    soon as I have enough time)
  626.  o Real-time zoom (like Mand2000)
  627.  
  628.  As you see I have a lot of ideas and so there are a lot of possibilities,
  629. let  me know  your preferences  and if  you have  any proposal for special
  630. features not mentioned here (please don't just say: "I want Smart to  draw
  631. in  real time, support  custom fractals and  display images directly on my
  632. Virtual reality glasses" :-).
  633.  
  634.        4.3     Known bugs
  635.  
  636.  No known bug, but I know of a problem with the 'quit' option, it  appears
  637. not to be active (!!) when you use some screen promotors to force Smart to
  638. work  with a weird graphic adaptor, that's not a problem with Smart it may
  639. be due to ReqTools (I doubt this as it always worked perfectly) or to some
  640. tricky tech used by the promotor (that's more like to be this), form  V1.2
  641. this  should be completely resolved as  you shouldn't need promotors. Also
  642. know that  V1.2 does  not have  yet full  support for  24 bit palette (the
  643. compiler  is too old  and I could  not find a  clean way to handle the new
  644. KS3.0 functions), on AGA machines you can display in 256 colors with a  24
  645. bit  palette but when saving the palette  saved in the file will be scaled
  646. to 12 bit (sorry, will search  for someone with a recent compiler  as soon
  647. as possible). From V1.2 the info window also displays infos on the machine
  648. it detects, CPU+FPU are OK but I don't know a SAFE way for identifying AGA
  649. and  so if the 15th bit of the AttnFlag is set Smart thinks AGA-chipset to
  650. be there.
  651.  
  652.        4.4     History
  653.  
  654.  V1.0 in 14/6/94 : First release
  655.  V1.1 in 18/7/94 (Internal) : Never released but really stable.
  656.    - When run from CLI/SHELL it now auto detaches and goes in background
  657.    - Added two voices to Prefs menu to load separately Options and Spots
  658.    - Added the option to compress images with standard Iff method
  659.    - Added color cycling
  660.    - Added "Be Quiet" toggle
  661.    - Added the zoombox
  662.  V1.2 in 20/9/94 : No known bugs.
  663.    - Added support for any system monitor with a standard Screenmode
  664.      requester
  665.    - Added a toolbar to make interaction more immediate and intuitive :->
  666.    - Added new fractals "JuliaPP" and "Inverted JuliaPP"
  667.    - Added 64 bit integer math, about 3-4 times faster than "float" and
  668.      90% of the times with equivalent precision, made separate versions
  669.      for 68000-010 and 68020+
  670.    - Added the ability to show cursor coordinates on the screen title
  671.    - Fixed a bug in V1.1 that caused some problems with packed iff
  672.    - Now Smart asks for confirmation before overwriting existing files
  673.      this feature can be disabled with the "Be Quiet" switch
  674.    - Fixed a bug that didn't allow to use more than 65535 iterations with
  675.      FPU precision
  676.    - Micro-buffering almost halves the time taken to render quite uniform
  677.      areas.
  678.  
  679.  
  680.        4.5     People I wish to thank
  681.  
  682.  Oh, well, there's  a lot of  people I should  thank, so in  no particular
  683. order:  Mom, dad and  my brother for  supporting me and  being patient, my
  684. friends for their interest and then in particular:
  685.  Stefano Volponi for  correcting the errors  in this text  (as you'll have
  686. supposed English is not my native language!)
  687.  Donato  Corvi for beta-testing  on his fat  A1200+68030 33Mhz+68882 48Mhz
  688. FPU +4Meg 32Bit fast. Also for letting  me work at his home in an  attempt
  689. to  fix a nasty bug  with FPU (finally I  caught it!). Most of the awesome
  690. new spots found in V1.2 are due to his research.
  691.  Cristiano Preda for beta-testing  on his monster (A2000+8Meg  32bit fast,
  692. 68040  30Mhz, 2Meg Merlin  graphic adapter), and  for procuring me the iff
  693. documentation.
  694.  Other people I wish to thank:
  695.  Fabrizio Sala (sysop of Fast Enough BBS) for spreading (I hope!) Smart on
  696. Fidonet
  697.  Nico François for  developing the ReqTools  library (req.library is  cool
  698. but reqtools is cooler!) (if you want to know more about Reqtools read the
  699. SHAREWARE.DOC file)
  700.  Enrico  M. Ferrari for paying attention to SmartFactal and for his review
  701. on MC MicroComputer
  702.  And all the others I forgot!
  703.  
  704.        4.6     Bibliography
  705.  
  706.  The book I wrote about many times in this text is:
  707. H.O.Peitgen  -  P.H.Richter,"The  Beauty  of  Fractals,  Images of Complex
  708. Dynamical Systems",1986, Springer Verlang - Berlin, Heidelberg, New York.
  709.  If  you have a secondary school preparation  and like math you'll be able
  710. to comprehend the principles explained in this book and even if you  don't
  711. understand  mathematics you'll find the  Interventions very interesting as
  712. they are  comprehensible by  anyone and  express interesting philosophical
  713. considerations;  you'll also find an interesting  appendix on how to write
  714. simple  programs  to  generate  fractals,  if  you are a bit more advanced
  715. there's  a  section  commenting  some  advanced  techs  you'll surely find
  716. interesting (even if some do require too much computational power to adapt
  717. them for our amigas). If you are  Italian (As I am!) you'll also find  the
  718. Italian  translation of this book, it's  called "La Bellezza dei Frattali"
  719. and  is  published  by  Bollati-Boringhieri,  I  found  it  to  be  a good
  720. translation not presenting problems with traslation of mathematical therms
  721. (thanks to the work of Umberto Sampietri).
  722.  If you want to read something more practically-oriented you should try to
  723. procure  old  numbers  of  "Scientific  American"  (or  translations) that
  724. featured  interesting  articles   about  fractals  and   non-deterministic
  725. dynamics.
  726.  If,  instead,  you  are  more  interested  in the mathematical aspect you
  727. should search for a book  of B.Mandelbrot that's considered the  father of
  728. the modern theory of fractals. I just mention the most known:
  729.  Benoit.B.Mandelbrot,"The   Fractal  Geometry  of  Nature",1982,  Freeman,
  730. San Francisco.
  731.  
  732.  
  733.  I hope you like Smartfractal  and find interesting images that  meet your
  734. sense of beauty.
  735.                                                   Simone Avogadro
  736.  
  737.  
  738.  
  739.  
  740.